package com.sc.nft.entity.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sc.nft.entity.ApiOrderDirect;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.util.Date;

/**
 * @author liGen
 * @version 1.0
 * @date 2023/11/23 10:33 上午
 */
@Data
public class ApiOrderDirectDTO {

    /**
     * 订单ID
     */
    @ApiModelProperty("订单ID")
    private Long orderId;

    /**
     * 订单编号
     */
    @ApiModelProperty("订单编号")
    private String orderNo;

    /**
     * API订单id
     */
    @ApiModelProperty("API订单id")
    private String apiOrderId;

    /**
     * API商品Id
     */
    @ApiModelProperty("API商品Id")
    private Integer apiProductId;

    /**
     * API商品名称
     */
    @ApiModelProperty("API商品名称")
    private String apiProductName;

    /**
     * API充值账号
     */
    @ApiModelProperty("API充值账号")
    private String apiChargeAccount;

    /**
     * API商品购买数量
     */
    @ApiModelProperty("API商品购买数量")
    private Integer apiBuyNum;

    /**
     * API订单类型：1-话费 2-流量 3-卡密 4-直充
     */
    @ApiModelProperty("API订单类型：1-话费 2-流量 3-卡密 4-直充")
    private Integer apiOrderType;

    /**
     * 订单状态:success：成功，processing：处理中，failed：失败，untreated：未处理
     */
    @ApiModelProperty("订单状态:success：成功，processing：处理中，failed：失败，untreated：未处理")
    private String apiOrderState;

    /**
     * 充值成功时间
     */
    @ApiModelProperty("充值成功时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date successTime;

    public static ApiOrderDirectDTO build(ApiOrderDirect apiOrderDirect){
        ApiOrderDirectDTO apiOrderDirectDTO = new ApiOrderDirectDTO();
        BeanUtils.copyProperties(apiOrderDirect,apiOrderDirectDTO);
        return apiOrderDirectDTO;
    }

}
